package ${packageName};

<#list imports as import>
import ${import};
</#list>
import ${basePackage}.vo.${underlineToCamel(sourceTable?lower_case,true?string)}Vo;
import ${basePackage}.param.${underlineToCamel(sourceTable?lower_case,true?string)}Param;
<#--import ${basePackage}.api.fallback.${underlineToCamel(sourceTable?lower_case,true?string)}ApiFallback;-->

/**
* @version V1.0
* ${sourceTableDesc}: ${sourceTable} 为其他服务提供内部调用接口 API.
* @InterfaceName: ${underlineToCamel(sourceTable?lower_case,true?string)}Api
* @Description: ${sourceTableDesc}:${sourceTable} 为其他服务提供内部调用接口 API.
* @author: ${author}
* @date:   ${.now}
* @Copyright: Copyright (c) ${.now?string('yyyy')}
*/

<#--@FeignClient(name = "${serviceName}" , fallback = ${underlineToCamel(sourceTable?lower_case,true?string)}ApiFallback.class, path = "${pathName}")-->
public interface ${underlineToCamel(sourceTable?lower_case,true?string)}Api {

    @GetMapping("${pathName}/get/{id}")
    public ApiResult<${underlineToCamel(sourceTable?lower_case,true?string)}Vo> query${underlineToCamel(sourceTable?lower_case,true?string)}ById(@PathVariable("id") String id);

    @PostMapping("${pathName}/listByIds")
    public ApiResult<List<${underlineToCamel(sourceTable?lower_case,true?string)}Vo>> query${underlineToCamel(sourceTable?lower_case,true?string)}ByIds(@RequestBody List<String> ids);

    @PostMapping("${pathName}/page/{pageNo}/{pageSize}")
    public ApiResult<IPage<${underlineToCamel(sourceTable?lower_case,true?string)}Vo>> query${underlineToCamel(sourceTable?lower_case,true?string)}ForPage(@RequestBody ${underlineToCamel(sourceTable?lower_case,true?string)}Param params, @PathVariable("pageNo") Integer pageNo, @PathVariable("pageSize") Integer pageSize);

    @PostMapping("${pathName}/list")
    public ApiResult<List<${underlineToCamel(sourceTable?lower_case,true?string)}Vo>> query${underlineToCamel(sourceTable?lower_case,true?string)}ForList(@RequestBody ${underlineToCamel(sourceTable?lower_case,true?string)}Param params);

    @PostMapping("${pathName}/add")
    public ApiResult<${underlineToCamel(sourceTable?lower_case,true?string)}Vo> add${underlineToCamel(sourceTable?lower_case,true?string)}(@RequestBody ${underlineToCamel(sourceTable?lower_case,true?string)}Vo vo);

    @PostMapping("${pathName}/adds")
    public ApiResult<List<${underlineToCamel(sourceTable?lower_case,true?string)}Vo>> adds${underlineToCamel(sourceTable?lower_case,true?string)}(@RequestBody List<${underlineToCamel(sourceTable?lower_case,true?string)}Vo> voList);

    @PutMapping("${pathName}/modify")
    public ApiResult<${underlineToCamel(sourceTable?lower_case,true?string)}Vo> modify${underlineToCamel(sourceTable?lower_case,true?string)}(@RequestBody ${underlineToCamel(sourceTable?lower_case,true?string)}Vo vo);

    @PutMapping("${pathName}/modifys")
    public ApiResult<List<${underlineToCamel(sourceTable?lower_case,true?string)}Vo>> modifys${underlineToCamel(sourceTable?lower_case,true?string)}(@RequestBody List<${underlineToCamel(sourceTable?lower_case,true?string)}Vo> voList);

    @DeleteMapping("${pathName}/remove/{id}")
    public ApiResult<Void> remove${underlineToCamel(sourceTable?lower_case,true?string)}(@PathVariable("id") String id);

    @DeleteMapping("${pathName}/removes")
    public ApiResult<Void> removes${underlineToCamel(sourceTable?lower_case,true?string)}(@RequestBody List<String> ids);

<#--    @PostMapping("${pathName}/export")-->
<#--    public ApiResult<Void> export${underlineToCamel(sourceTable?lower_case,true?string)}ForExcel(@RequestBody ${underlineToCamel(sourceTable?lower_case,true?string)}Param params , HttpServletResponse response) throws Exception;-->


}